The present invention relates to a semiconductor memory device, more particularly, to a technique for managing data stored in a non-volatile memory device.
Techniques for detecting and correcting errors enable damaged data due to various reasons to be effectively restored. For example, data may be damaged due to various reasons in a process for storing data in a memory, and due to perturbations of a channel for transferring data from a source to a destination. A number of methods have been suggested for detecting and correcting the damaged data. Commonly used techniques for detecting errors include a Reed-Solomon RS code, a Hamming code, a Bose-Chaudhuri-Hocquenghem (BCH) code and a Cyclic Redundancy (CRC) code. It is possible to detect damaged data using these codes, and to correct the errors in the data. In most fields to which a non-volatile memory device is applied, data is stored in a non-volatile memory device along with a value called an error correcting code (referred to hereinafter as “ECC”).
ECC data is provided for correcting an error occurring during a read operation of a non-volatile memory device. The maximum number of correctable bit errors using the ECC data is limited. The ECC data for correcting a single bit error is stored in a general non-volatile memory device. Accordingly, the single bit error occurring during a data read operation may be corrected by techniques for detecting and correcting an error without additional restoration processes such as a block replacement.
In the data where a single bit error is corrected, it is likely that additional errors occur in the next read operation. If the number of bit errors of the read data exceeds an allowed number of bit errors, a memory block including the read data is replaced with a reserved memory block provided in a non-volatile memory device by additional restoration methods known as a block replacement method. At this time, the data in the replaced memory block will be copied to a reserved memory block. If the read data includes an allowable number of bit errors, an error of the read data is corrected by the dedicated techniques for detecting and correcting errors. Even if an error of the read data is corrected, it is likely that additional errors occur in error-corrected data during a read operation. Therefore, a technique for improving the reliability of error-corrected data is required.